package com.zzw.springboot.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.zzw.springboot.bean.Supplier;
import com.zzw.springboot.bean.SysUser;

import java.util.List;

/**
 * 供应商服务接口
 */
public interface SupplierService extends IService<Supplier> {
    /**
     * 添加供应商
     * @param supplier 供应商信息
     * @return 是否成功
     */
    boolean addSupplier(Supplier supplier);

    /**
     * 更新供应商
     * @param supplier 供应商信息
     * @return 是否成功
     */
    boolean updateSupplier(Supplier supplier);

    /**
     * 删除供应商
     * @param supplierId 供应商ID
     * @return 是否成功
     */
    boolean deleteSupplier(Integer supplierId);

    /**
     * 批量删除供应商
     * @param supplierIds 供应商ID数组
     * @return 是否成功
     */
    boolean deleteSupplierBatch(Integer[] supplierIds);

    /**
     * 根据ID查询供应商
     * @param supplierId 供应商ID
     * @return 供应商信息
     */
    Supplier getSupplierById(Integer supplierId);

    /**
     * 查询供应商列表（带条件）
     * @param supplier 查询条件
     * @return 供应商列表
     */
    List<Supplier> getSupplierList(Supplier supplier);

    /**
     * 查询全部供应商
     * @return 供应商列表
     */
    List<Supplier> getAllSuppliers();

    /**
     * 检查供应商编码是否已存在
     * @param supplierCode 供应商编码
     * @param supplierId 供应商ID（排除项）
     * @return 是否存在
     */
    boolean checkSupplierCodeExists(String supplierCode, Integer supplierId);

    /**
     * 检查供应商名称是否已存在
     * @param supplierName 供应商名称
     * @param supplierId 供应商ID（排除项）
     * @return 是否存在
     */
    boolean checkSupplierNameExists(String supplierName, Integer supplierId);

    /**
     * 更新供应商评分
     * @param supplierId 供应商ID
     */
    void updateSupplierScore(Integer supplierId);

    /**
     * 确定供应商等级
     * @param supplier 供应商信息
     * @return 供应商等级
     */
    String determineSupplierLevel(Supplier supplier);
}
